VisualHMI - 历史曲线控件
什么是历史曲线控件?
历史曲线可以实现:
- 连续采样:连续采样将同一时刻,连续的N个寄存器绘制到同一条曲线上;
- 资料采样:资料采集将同一个寄存器的数据,不同时间的数据绘制成一条曲线显示。
曲线最大支持16个通道,且支持掉电存储、导出、翻页、清除、缩放等等等
本文档介绍历史曲线的常用的应用:
- 资料采样
- 连续采样
使用范围:VisualHMI - HMI&M系列
1.属性说明
1.1.曲线数据
历史曲线控件的曲线数据的来源:可以选择“资料采集”、“连续地址”,属性如下所示:
资料采样
- 资料采集:采集同一寄存器的数据,将不同时刻的数据绘制在同一曲线上,资料采集详细说明,参考VisualHMI - 资料采样(点击查看)
连续地址:采集同一时刻连续寄存器的数据,并将数据绘制在同一曲线上,属性下所示:
数据点数:采集连续寄存器的个数。范围1~40000;
数据地址:采集连续寄存器的起始地址;
数据类型:支持UINT16、INT16、UINT32、INT32、UINT64、INT64、FLOAT、DOUBLE;
- 数值转换:实际的数据 = 传输的数据 * 缩放 + 偏移;
1.2.曲线设置
历史曲线控件的曲线设置属性如下所示:
曲线粗细:支持1像素、2个像素;
曲线通道:最大支持16条曲线
- 通道颜色:设备每个通道的颜色
控制地址:填入控制通道的寄存器地址
Addr+0:通道显示隐藏,设置隐藏/ 显示每一个通道的曲线,bit0~bit15对应通道1~通道15,为0显示,为1隐藏,默认显示;
Addr+1:翻页控制,设置历史曲线的翻页,Addr+1:。1-上一页(曲线移动方向);2-下一页;3-首页(最新数据);4-尾页(最旧数据);
Addr+2:读取翻页操作是否可行,BIT1表示 “上一页”、BIT2表示“下一页”、BIT3表示“首页”、“BIT4”表示尾页。若该位为1,表示翻页可以执行;若该位为0,表示翻页操作不可以执行
Addr+3~Addr+4:时间戳定位,UINT32,时间戳定位,可以搭配下拉菜单关联,当下拉选择对应的时间,滚动条会自动定位到对应的时间节点。精度,天为单位
Addr+5:时间宽度控制,X轴上,表示一屏显示的点数。如控件的大小宽度400,时间宽度控制为100,那么400/100,即4个像素显示描绘一个点,如果采集了101个点,则会显示滚动条,可拖动查看。
1.3.X轴(时间)
X轴方向相关的设置,属性如下所示
时间宽度:一页的显示的采样点数,如100,添加到第101个数据,满屏。曲线会从左往右移动;
刻度数:X轴的刻度数;范围:2~10,一个刻度对应一个时间显示
显示刻度:可设置无、分割线或刻度线
1.4.Y轴(值)
Y轴方向相关的设置,属性如下所示:
- 最大值:Y轴上的最大值,可以在LUA脚本动态修改,调用wgt_set_param(...) API实现;
- 最小值:Y轴上的最小值,可以在LUA脚本动态修改,调用wgt_set_param(...) API实现;
- 越界不显示:√或不选,当值大于最大值或最小值,该店参数可以不显示
- 刻度数:2~11
- 显示数值:显示Y轴刻度上的值
- 显示刻度:可设置无、分割线或刻度线
1.5.外观属性
历史曲线控的外观属性如下所示:
- 字体:字库选择
- 字体大小:字号设置
- 文字颜色:字体颜色设置
- 显示边框:可设置曲线外围边框颜色
- 显示背景:可设置透明不显示或纯色背景
- 分割线颜色:若X、Y设置了显示刻度,可设置分割线的颜色
- 显示滚动条:√,当采样点数大于“时间宽度”,可显示滚动条拖动查看数据
- 显示触摸标识:√,勾选上,当用户触摸曲线控件,对应位置显示采样时间和值
2. 应用
2.1 历史曲线-资料采样
2.1.1 资料采样配置
资料采集配置,如下所示:
描述信息:历史曲线;
采样模式:定时采样
记录条数:2000;
采样周期:100;
采样单位:毫秒;
数据地址:LW1010
数据类型:UINT16
数据个数:3
控制地址:LW1001
导出标题:
采样控制地址:√
控制地址:LW1000
启动模式OFF→ON
2.1.2.历史曲线控件配置
历史曲线控件配置如下所示:
数据来源:资料采集,资料取样索引为“[0]历史数据”
通道数:为3。(资料采集→数据个数→3)
控制地址:0x1003,UINT16类型
隐藏控制:√,地址为0x1003,UINT16类型
翻页控制:√,地址为0x1004,UINT16类型
允许翻页:地址为0x1005,UINT16,只读
时间戳定位:√,地址为0x1006,UINT32类型
时间宽度:√,地址为0x1008
显示滚动条:√
显示触摸标识:√,点击曲线控件,将显示对应点的时间、参数值
2.1.3.采样使能配置
添加2个位状态指示灯控件,关联LW1000地址,和资料采集配置的“采样控制地址:LW1000对应,配置如下所示:
- 读取地址:LW1000
- 切换开关:√
- 开关类型:设为ON(开始采集)/ 设为OFF(停止采集)
【运行预览】
运行虚拟屏,点击开始采样,屏幕显示3条曲线,曲线从右往左移动,点击停止采样,曲线停止,如下所示:
2.1.4.历史曲线-清除记录
添加一个字状态按钮,关联LW1001地址,和资料采集配置的“控制地址LW1001”对应,配置如下所示:
- 写入地址:LW1001
- 操作模式:写入常量
- 常量值:85
【运行预览】
运行虚拟屏,点击清除记录,曲线记录清空,如下所示:
2.1.5.历史曲线-通道显示隐藏
添加3个位状态按钮,关联LW1003.0、LW1003.1、LW1003.2地址,和历史曲线控件配置的控制地址 LW1003对应,配置如下所示:
- 读取地址:LW1003.0/LW1003.1/LW1003.2
- 切换开关:√
- 开关类型:切换开关
【运行预览】
运行虚拟屏,点击对应用到显示/隐藏,如下所示:
2.1.6.历史曲线控件-通道翻页控制
添加4个字按钮控件,均关联LW1004地址,和曲线控件配置的“翻页控制 0x1004”对应,配置如下所示
写入地址:LW1004
操作模式:写入常量
- 常量值:1/2/3/4
控制权限:√。显示隐藏,表示还有下一页、上一页操作
条件控制:LW1005.1/LW1005.2
比较:==
值:1
【运行预览】
运行虚拟屏,点击上一页、下一页、尾页、首页,滚动条和曲线的位置实时刷新,显示效果如下所示:
2.1.7.历史曲线控件-X轴缩放
添加一个数值控件,关联地址LW1008,和曲线控件配置的“时间宽度”的地址对应,配置如下所示:
启用输入:√
读取地址:LW1008
【运行预览】
运行虚拟屏,点击数值控件,输入200,一页显示200个采样点;输入50,一页显示50个采样点,实现X轴放大缩小效果。如下所示:
2.1.8.历史曲线控件-Y轴缩放
Y轴缩放需要结合LUA设置Y轴的最大值、最小值。设置历史曲线控件的ID不为0,如下所示,设置为100
添加2个数值控件,最小值、最大值分别关联地址为LWA000、LWA001,配置如下所示:
启用输入:√
读取地址:LWA000 / LWA001
【LUA脚本】
LUA脚本设置:曲线控件的Y轴缩放,最小值、最大值在LUA脚本实现,代码如程序 1所示:
wgt_set_param(screen,control, param,value)
设置控件的属性接口
screen: 画面 ID
control:控件 ID
param: 设置标识码
0x31:表示曲线控件的 Y 轴最小值
0x32:表示曲线控件的 Y 轴最大值
value:数据内容
function on_update(slave,vtype,addr)
if vtype == VT_LW
then
if addr == 0xA000
then
local _min = get_uint16(VT_LW, 0xA000)
wgt_set_param(__page._hisgraph1, 100, 0x31, _min)
elseif addr == 0xA001
then
local _max = get_uint16(VT_LW, 0xA001)
wgt_set_param(__page._hisgraph1, 100, 0x32, _max)
end
end
end
【运行预览】
运行虚拟屏,点击数值控件,设置最大值为200,最小值为20,如下所示:
2.2 历史曲线-连续采样
2.2.1.工程配置
历史曲线控件配置如下所示:
数据来源:连续采样
数据点数:为50。
数据地址:0x4000
数据类型:UINT16类型
通道数量:2
[!warning|tip:注意] 若数据地址为0x4000开始,数据点数为50,即是通道1、通道2对应的寄存器范围如下所示:
即是通道1由LW4000、LW4002、LW4004、...、LW405E、LW4060、LW4062共50个地址的寄存器连成一条曲线显示出来。
通道1 | LW4000 | LW4002 | LW4004 | ...... | LW405E | LW4060 | LW4062 |
---|---|---|---|---|---|---|---|
通道2 | LW4001 | LW4003 | LW4005 | ...... | LW405F | LW4061 | LW4063 |
时间刻度:50,一屏显示50个参数
显示触摸标识:√,点击曲线控件,将显示对应点的时间、参数值
2.2.2.运行预览
运行虚拟屏,在LUA脚本on_run里对寄存器0x4000~0x4063,100个寄存器赋值随机数,用来DEMO演示体验,进入“连续采集”画面,如下所示: